﻿namespace _134加油站
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, World!");
        }
    }
    public class Solution
    {
        public int CanCompleteCircuit(int[] gas, int[] cost)
        {
            int n = gas.Length;
            int start = 0; // 起点加油站的索引
            int currGas = 0; // 当前油箱中的汽油量
            int totalGas = 0; // 从起点到当前加油站累积的汽油量

            for (int i = 0; i < n; i++)
            {
                currGas += gas[i] - cost[i]; // 更新当前油箱中的汽油量

                if (currGas < 0)
                {
                    start = i + 1; // 更新起点为下一个加油站
                    currGas = 0; // 重置当前油箱中的汽油量
                }

                totalGas += gas[i] - cost[i]; // 更新累积的汽油量
            }

            // 判断是否存在解
            return totalGas >= 0 ? start : -1;
        }
    }
}
